# 导入time模块，用于实现程序暂停（等待页面加载、操作间隔）
import time
# 从selenium库导入webdriver模块，用于创建浏览器驱动对象、控制浏览器
from selenium import webdriver
# 从selenium的驱动模块中导入By类，用于指定元素定位的方式（如ID、LINK_TEXT等）
from selenium.webdriver.common.by import By

# 1. 打开浏览器（Chrome浏览器）
# executable_path参数指定Chrome驱动程序的本地路径（适配旧版selenium，新版可省略）
# 创建Chrome浏览器驱动对象，后续通过driver变量控制浏览器的所有操作
driver = webdriver.Chrome(executable_path='D:/chrome_driver/chromedriver.exe')
# 注释：以下是新版selenium的简化写法（无需手动指定驱动路径，需提前配置环境变量或安装对应驱动）
# driver = webdriver.Chrome() #创建浏览器对象

# 2. 输入并访问目标URL（打开指定网页）
# get()方法：接收URL参数，让浏览器加载对应网页
driver.get("http://121.43.169.97:8848/pageA.html")

# 放大浏览器页面（最大化窗口，避免元素因窗口大小导致定位失败）
driver.maximize_window()

# # 3. 页面核心操作（元素定位、页面导航等）
# 定位元素并执行点击操作：通过链接文本（LINK_TEXT）定位"百度"超链接
# find_element(By.LINK_TEXT, "百度")：按精确匹配的链接文本查找单个元素
# click()：对定位到的元素执行点击操作（此处点击后跳转到百度页面）
driver.find_element(By.LINK_TEXT,"百度").click()

# 暂停3秒（强制等待）：给页面跳转/加载留时间，避免后续操作因页面未加载完成而失败
time.sleep(3)

# 浏览器后退操作：回到上一个访问的页面（此处从百度页面退回到pageA.html）
driver.back()

# 暂停3秒：等待后退页面加载完成，确保后续操作稳定性
time.sleep(3)

# 浏览器前进操作：回到后退前的页面（此处从pageA.html再次前进到百度页面）
driver.forward()

# 暂停3秒：等待前进页面加载完成，避免关闭浏览器时页面未完全加载
time.sleep(3)

# 4. 关闭/退出浏览器（资源释放）
# quit()：关闭所有由当前驱动打开的浏览器窗口，并终止驱动进程（彻底释放资源，推荐使用）
# 区别于close()：close()仅关闭当前聚焦的浏览器窗口，驱动进程可能残留
driver.quit()